#ifndef __RESOURCE_CONTROLLER_OBJECT_DESCRIBER_HPP__
#define __RESOURCE_CONTROLLER_OBJECT_DESCRIBER_HPP__

#include "resource_controller\ih\resource_controller_global.h"

#include <QtCore\qpointer.h>

#include <set>

namespace ResourceController {

class ObjectDescriber
{

public:

	typedef std::set< std::shared_ptr< ObjectDescriber > > ObjectDescribersContainer;

public:

	ObjectDescriber( std::string const& _objectName )
		:	m_objectName( _objectName )
	{
	}

public:

	int getHorizontalSize() const
	{
		return m_horizontalSize;
	}

	int getVerticalSize() const
	{
		return m_verticalSize;
	}

	int getStartHorizontalLocation() const
	{
		return m_horizontalLocation;
	}

	int getStartVerticalLocation() const
	{
		return m_verticalLocation;
	}

	QImage* getObjectPicture() const
	{
		return m_objectPicture;
	}

public:

	void setHorizontalSize( int _horizontalSize )
	{
		m_horizontalSize = _horizontalSize;
	}

	void setVerticalSize( int _verticalSize )
	{
		m_verticalSize = _verticalSize;
	}

	void setStartHorizontalLocation( int _horizontalLocation )
	{
		m_horizontalLocation =  _horizontalLocation;
	}

	void setStartVerticalLocation( int _verticalLocation )
	{
		m_verticalLocation = _verticalLocation;
	}

	void setObjectPicture( QImage* _objectPicture )
	{
		m_objectPicture = _objectPicture;
	}

private:

	std::string m_objectName;

	QImage* m_objectPicture;

	int m_horizontalSize, m_verticalSize;

	int m_horizontalLocation, m_verticalLocation;

};

} // namespace ResourceController

#endif // __RESOURCE_CONTROLLER_OBJECT_DESCRIBER_HPP__
